import {
  createRouter,
  createWebHistory,
  createWebHashHistory
} from "vue-router";

import { resetStaticRoutes } from "./utils/reset-routes";
import { createRouterGuard } from "./guard";
import { routes } from "./routes";

/**
 * RouteRecordRaw  vueTS 的泛型 用于声明 路由配置的地方
 */

// 创建路由实例并传递 `routes` 配置
// 你可以在这里输入更多的配置，但我们在这里
// 暂时保持简单

const router = createRouter({
  // 4. 内部提供了 history 模式的实现。为了简单起见，我们在这里使用 hash 模式。
  history:
    import.meta.env.VITE_ROUTER_HISTORY === "hash"
      ? createWebHashHistory()
      : createWebHistory("/admin/"),
  routes: routes

  // scrollBehavior: (to, _from, savedPosition) => {
  //   if (savedPosition) {
  //     return savedPosition;
  //   }
  //   return to.hash ? { behavior: "smooth", el: to.hash } : { left: 0, top: 0 };
  // }
});

const resetRoutes = () => resetStaticRoutes(router, routes);
// 配置路由守卫
export { resetRoutes, router };

// 创建路由守卫
createRouterGuard(router);

// 配置路由器
export function setupRouter(app) {
  app.use(router);
}
